// 最常访问类
class DynamicVisitItem {
  String avatar; //头像
  String upName; //up名称
  bool checked; //是否已读
  DynamicVisitItem({
    required this.avatar,
    required this.checked,
    required this.upName,
  });
}

// 关注直播列表
class DynamicLivingItem {
  String avatar; //头像
  String upName; //up名称
  String? code; //房间号
  DynamicLivingItem({
    required this.avatar,
    required this.upName,
    this.code,
  });
}

// 我的追番·追剧列表
class UpdateVideoItem {
  String coverUrl; //封面
  String title; //标题
  String? subTitle; //描述
  UpdateVideoItem({
    required this.coverUrl,
    required this.title,
    this.subTitle,
  });
}

// 动态热评
class DynamicCommentItem {
  String upName;
  String content;
  DynamicCommentItem({
    required this.upName,
    required this.content,
  });
}

// 动态话题
class DynamicTopic {
  String name; //话题名称
  String? id;
  DynamicTopic({required this.name, this.id});
}

// 动态标签
class DynamicLabel {
  String name; //标签名称
  DynamicLabel({required this.name});
}

// 动态 用户佩戴粉丝卡片信息
class DynamicUPInfoFansCardInfo {
  String imageUrl; //卡片图片地址
  String? index; //顺序
  int? color; //顺序文字颜色
  DynamicUPInfoFansCardInfo({
    required this.imageUrl,
    this.index,
    this.color = 0xff000000,
  });
}

//  动态 用户认证信息
class DynamicUPInfoAuthentication {
  // 机构认证
  String type; //institution：机构认证，UP：up主认证，
  String name; //认证名称
  DynamicUPInfoAuthentication({
    required this.type,
    required this.name,
  });
}

// 动态 用户信息
class DynamicUPInfo {
  String name; //用户名
  String avatar; //用户头像
  DynamicUPInfoFansCardInfo? dynamicUPInfoFansCardInfo; //用户佩戴粉丝卡片
  bool isSubscribe; //是否已关注
  bool isVIP; //是否大会员
  bool isLiving; //是否正在直播
  DynamicUPInfoAuthentication? dynamicUPInfoAuthentication; //认证
  DynamicUPInfo({
    required this.name,
    required this.avatar,
    this.isSubscribe = true,
    this.isVIP = false,
    this.isLiving = false,
    this.dynamicUPInfoFansCardInfo,
    this.dynamicUPInfoAuthentication,
  });
}

// 动态视频类型类（视频投稿、直播回放、动态视频）
class DynamicVideoItem {
  String coverUrl; //视频封面
  String duration; //视频时长
  String viewCount; //观看量
  String danmuCount; //弹幕量
  String? title; //视频标题 动态视频不含标题
  bool isCooperate; //是否合作
  String videoType; //contribute投稿，playback直播回放，dynamic动态视频
  DynamicVideoItem({
    required this.coverUrl,
    required this.duration,
    required this.viewCount,
    required this.danmuCount,
    this.title,
    this.isCooperate = false,
    required this.videoType,
  });
}

// 动态图文类型
class DynamicImageTextItem {
  List<String> imageList;
  String dynamicImageListType; //动态图片（多图）展示方式 card九宫格，row大图行滚动
  DynamicImageTextItem({
    required this.imageList,
    required this.dynamicImageListType,
  });
}

// 动态文章类型
class DynamicArticleItem {
  String title; //文章标题
  String content; //文章内容
  String? coverUrl; //文章大封面
  DynamicArticleItem({
    required this.title,
    required this.content,
    this.coverUrl,
  });
}

// 动态分享内容
class DynamicShareItem {
  String dynamicType; //动态类型 imageText图文，video视频，article文章，share转发，playback直播回放，
  DynamicUPInfo dynamicUPInfo; //动态用户信息
  String? content; //动态文本内容
  DynamicVideoItem? dynamicVideoItem; //视频类型
  DynamicArticleItem? dynamicArticleItem; //文章类型
  DynamicImageTextItem? dynamicImageTextItem; //图文类型
  DynamicTopic? dynamicTopic; //动态话题
  List<DynamicLabel>? dynamicLabelList; //动态标签
  List<DynamicUPRecommendGoods>? dynamicUPRecommendGoodsList; //up推荐
  DynamicRelevant? dynamicRelevant; //相关内容
  DynamicShareItem({
    required this.dynamicType,
    required this.dynamicUPInfo,
    this.content,
    this.dynamicVideoItem,
    this.dynamicArticleItem,
    this.dynamicImageTextItem,
    this.dynamicTopic,
    this.dynamicLabelList,
    this.dynamicUPRecommendGoodsList,
    this.dynamicRelevant,
  });
}

// 动态 up主的推荐商品 当多个时以滚动列表展示图片
class DynamicUPRecommendGoods {
  String coverUrl; //封面
  String title; //标题
  String? subTitle; //描述标题
  String price; //价格
  DynamicUPRecommendGoods({
    required this.coverUrl,
    required this.title,
    required this.price,
    this.subTitle,
  });
}

// 动态 相关内容
class DynamicRelevant {
  String type; //相关类型 game:游戏，
  DynamicRelevantGame? dynamicRelevantGame;
  DynamicRelevant({
    required this.type,
    this.dynamicRelevantGame,
  });
}

// 动态 相关内容-游戏
class DynamicRelevantGame {
  String coverUrl; //封面
  String title; //标题
  String type;
  String subTitle; //描述标题
  DynamicRelevantGame({
    required this.coverUrl,
    required this.title,
    required this.type,
    required this.subTitle,
  });
}

// 动态 标签
class DynamicTagItem {
  String type; //标签类型 billboard：xx榜，hotAnimate；热门番剧榜
  String title; //标签标题
  int? index; //排行
  DynamicTagItem({
    required this.type,
    required this.title,
    this.index,
  });
}

// 动态列表
class DynamicItem {
  DynamicUPInfo dynamicUPInfo; //动态用户信息
  String time; //发布时间
  String? content; //动态文本内容（富文本）
  String dynamicType; //动态类型 imageText图文，video视频，article文章，share转发，
  DynamicVideoItem? dynamicVideoItem; //视频类型
  DynamicArticleItem? dynamicArticleItem; //文章类型
  DynamicImageTextItem? dynamicImageTextItem; //图文类型
  DynamicShareItem? dyanmicShareItem; //转发(分享)动态原内容
  int shareCount; //分享数量
  int commentCount; //评论数量
  int likeCount; //点赞数量
  bool isLike; //是否已点赞
  DynamicCommentItem? hotComment; //动态热评
  DynamicTopic? dynamicTopic; //动态话题
  List<DynamicLabel>? dynamicLabelList; //动态标签
  List<DynamicUPRecommendGoods>? dynamicUPRecommendGoodsList; //up推荐
  DynamicRelevant? dynamicRelevant; //相关内容
  DynamicItem({
    required this.dynamicUPInfo,
    required this.time,
    required this.dynamicType,
    this.content,
    this.dynamicVideoItem,
    this.dynamicArticleItem,
    this.dynamicImageTextItem,
    this.dyanmicShareItem,
    required this.shareCount,
    required this.commentCount,
    required this.likeCount,
    required this.isLike,
    this.hotComment,
    this.dynamicTopic,
    this.dynamicLabelList,
    this.dynamicUPRecommendGoodsList,
    this.dynamicRelevant,
  });
}
